﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.Transactions;

namespace Funciones
{
    public class Operaciones
    {

        connection conn = new connection();

        // ejecutar consultas directo a la base de datos
        public string TraerValor(string strCadena)
        {
            try
            {
                DataSet ds = EjecutaConsultaDataset(strCadena);
                DataRow row;
                if (ds.Tables[0].Rows.Count > 0)
                {
                    row = ds.Tables[0].Rows[0];
                    return row[0].ToString();
                }
                else
                    return "";
            }
            catch (Exception)
            {
                throw;

            }

        }

        private DataSet EjecutaConsultaDataset(string consulta)
        {
            SqlDataAdapter daCommand;
            DataSet dsGral;
            conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
            try
            {
                daCommand = new SqlDataAdapter(consulta, conn.con);
                dsGral = new DataSet();
                daCommand.Fill(dsGral);
                return dsGral;
            }
            catch (SqlException error)
            {
                return null;
            }
            finally
            {
                dsGral = null;
            }
        }

        //metodo para validar al usuario
        public string validarUser(string user, string pass)
        {
            string usuario = "Usuario no registrado";
            string consulta = "select usuario from login where usuario = '" + user + "' and pass = '" + pass + "'";
            string resultado = TraerValor(consulta);
            if (resultado != "")
            {
                usuario = resultado;
            }
            else
            {
                usuario = "Usuario no registrado";
            }

            return usuario;
        }

        public string privilegios(string user, string pass)
        {
            try
            {
                string consulta = "select privilegios from login where usuario = '" + user + "' and pass = '" + pass + "'";
                string resultado = TraerValor(consulta);
                return resultado;
            }
            catch (Exception)
            {

                throw;
            }
        }

        public string usuario(string user, string pass)
        {
            try
            {
                string consulta = "select codigoUsuario from login where usuario = '" + user + "' and pass = '" + pass + "'";
                string resultado = TraerValor(consulta);
                return resultado;
            }
            catch (Exception)
            {

                throw;
            }
        }

        //Cargar el DataGridView del Inventario
        public DataTable todosLosProducto()
        {
            conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
            DataTable dt = new DataTable();

            SqlDataAdapter da = new SqlDataAdapter("QueryAllProductos", conn.con);
            SqlParameter ParbusquedaFolio = new SqlParameter();
            da.SelectCommand.CommandType = CommandType.StoredProcedure;

            try
            {
                da.Fill(dt);
            }
            catch (Exception)
            {

                throw;
            }

            return dt;
        }

        //Agregar Productos al Inventario
        public int agregarProducto(string nombre, string codigo, int precio, int cantidad, int minimo)
        {
            int error = 0;
            string es = "activo";
            try
            {
                conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);

                SqlCommand exec = new SqlCommand("ingresarProducto", conn.con);
                exec.CommandType = CommandType.StoredProcedure;

                exec.Parameters.Add("@nombreProducto", SqlDbType.NVarChar);
                exec.Parameters["@nombreProducto"].Value = nombre;

                exec.Parameters.Add("@codigoBarra", SqlDbType.NVarChar);
                exec.Parameters["@codigoBarra"].Value = codigo;

                exec.Parameters.Add("@precio", SqlDbType.Int);
                exec.Parameters["@precio"].Value = precio;

                exec.Parameters.Add("@cantidad", SqlDbType.Int);
                exec.Parameters["@cantidad"].Value = cantidad;

                exec.Parameters.Add("@minimo", SqlDbType.Int);
                exec.Parameters["@minimo"].Value = minimo;

                exec.Parameters.Add("@estado", SqlDbType.NVarChar);
                exec.Parameters["@estado"].Value = es;

                error = exec.ExecuteNonQuery();
                conn.con.Close();

            }
            catch (Exception)
            {
                return error;
            }
            finally
            {
                conn.con.Close();
            }

            return error;
        }

        //Datos del Producto Para el Detalle de Venta
        public string nombreproducto(string codigo)
        {
            try
            {
                string consulta = "select nombreProducto from producto where codigoBarra = '" + codigo + "'";
                string resultado = TraerValor(consulta);
                return resultado;
            }
            catch (Exception)
            {

                throw;
            }
        }

        public string precio(string codigo)
        {
            try
            {
                string consulta = "select precio from producto where codigoBarra = '" + codigo + "'";
                string resultado = TraerValor(consulta);
                return resultado;
            }
            catch (Exception)
            {

                throw;
            }
        }

        public string id(string codigo)
        {
            try
            {
                string consulta = "select codigoProdoucto from producto where codigoBarra = '" + codigo + "'";
                string resultado = TraerValor(consulta);
                return resultado;
            }
            catch (Exception)
            {

                throw;
            }
        }

        //buscar productos por el nombre
        public DataTable buscarProducto(string nombre)
        {
            conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
            DataTable dt = new DataTable();

            SqlDataAdapter da = new SqlDataAdapter("buscarProductoNombre", conn.con);
            SqlParameter ParbusquedaFolio = new SqlParameter();
            da.SelectCommand.CommandType = CommandType.StoredProcedure;


            try
            {
                ParbusquedaFolio.ParameterName = "@nombre";
                ParbusquedaFolio.Value = nombre;

                da.SelectCommand.Parameters.Add(ParbusquedaFolio);
                da.Fill(dt);
            }
            catch (Exception e)
            {
            }
            return dt;

        }

        //Eliminar Producto
        public int borrarProducto(int codigo)
        {
            int error = 0;
            try
            {
                conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);

                SqlCommand exec = new SqlCommand("borrarProducto", conn.con);
                exec.CommandType = CommandType.StoredProcedure;

                exec.Parameters.Add("@codigo", SqlDbType.Int);
                exec.Parameters["@codigo"].Value = codigo;

                error = exec.ExecuteNonQuery();
                conn.con.Close();
            }
            catch (Exception)
            {
                return error;
            }
            finally
            {
                conn.con.Close();
            }

            return error;
        }

        //Editar Datos de un Producto
        public int updateProducto(int codigo, string codigobarra, string nombre, int precio, int cantidad, int minimo)
        {
            int error = 0;
            try
            {
                conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);

                SqlCommand exec = new SqlCommand("editarProducto", conn.con);
                exec.CommandType = CommandType.StoredProcedure;

                exec.Parameters.Add("@codigo", SqlDbType.Int);
                exec.Parameters["@codigo"].Value = codigo;

                exec.Parameters.Add("@codigoBarra", SqlDbType.NVarChar);
                exec.Parameters["@codigoBarra"].Value = codigobarra;

                exec.Parameters.Add("@nombre", SqlDbType.NVarChar);
                exec.Parameters["@nombre"].Value = nombre;

                exec.Parameters.Add("@precio", SqlDbType.Int);
                exec.Parameters["@precio"].Value = precio;

                exec.Parameters.Add("@cantidad", SqlDbType.Int);
                exec.Parameters["@cantidad"].Value = cantidad;

                exec.Parameters.Add("@minimo", SqlDbType.Int);
                exec.Parameters["@minimo"].Value = minimo;

                error = exec.ExecuteNonQuery();
                conn.con.Close();
            }
            catch (Exception)
            {
                return error;
            }
            finally
            {
                conn.con.Close();
            }

            return error;
        }

        //Cargar DGV Busqueda Manual
        public DataTable busquedaManual()
        {
            conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
            DataTable dt = new DataTable();

            SqlDataAdapter da = new SqlDataAdapter("buscarCodigoBarra", conn.con);
            SqlParameter ParbusquedaFolio = new SqlParameter();
            da.SelectCommand.CommandType = CommandType.StoredProcedure;

            try
            {
                da.Fill(dt);
            }
            catch (Exception)
            {

                throw;
            }

            return dt;
        }

        //Transaccion Detalle de Venta
        public int insertVenta(DateTime fecha, int total, int boleta, int usuario, DataGridView DetalleVenta)
        {
            int cantidadProductos = 0;
            if (conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass))
            {
                SqlCommand Command = new SqlCommand("ingresarVenta", conn.con);
                Command.CommandType = CommandType.StoredProcedure;
                SqlTransaction sqlTran = conn.con.BeginTransaction();
                Command.Transaction = sqlTran;


                try
                {
                    Command.Parameters.AddWithValue("@boleta", boleta);
                    Command.Parameters.AddWithValue("@usuario", usuario);
                    Command.Parameters.AddWithValue("@total", total);
                    Command.Parameters.AddWithValue("@fecha", fecha);

                    Command.ExecuteNonQuery();

                    int producto = 0;
                    int precio = 0;
                    int cantidad = 0;
                    int subtotal = 0;
                    int venta = boleta;

                    for (int i = 0; i < DetalleVenta.RowCount - 1; i++)
                    {
                        producto = int.Parse(DetalleVenta.Rows[i].Cells[0].Value.ToString());
                        precio = int.Parse(DetalleVenta.Rows[i].Cells[2].Value.ToString());
                        cantidad = int.Parse(DetalleVenta.Rows[i].Cells[3].Value.ToString());
                        subtotal = int.Parse(DetalleVenta.Rows[i].Cells[4].Value.ToString());
                        insertDetalleVenta(producto, precio, cantidad, subtotal, boleta, ref sqlTran, conn.con);
                        int canitdadStock = int.Parse(TraerValor("select cantidad from producto where codigoProdoucto = "+producto+""));
                        int Ctotal = canitdadStock - cantidad;
                        restarProducto(producto, Ctotal, conn.con);
                    }
                    sqlTran.Commit();
                    cantidadProductos = DetalleVenta.RowCount - 1;
                }
                catch (Exception ex)
                {
                    try { sqlTran.Rollback(); }
                    catch (Exception exRollback) { }
                    cantidadProductos = 0;
                }

            }
            return cantidadProductos;
        }

        private void insertDetalleVenta(int producto, int precio, int cantidad, int subrtotal, int boleta, ref SqlTransaction sqlTran, SqlConnection con)
        {
            try
            {
                SqlCommand Command = new SqlCommand("ingresarDetalleVenta", con);
                Command.CommandType = CommandType.StoredProcedure;
                Command.Transaction = sqlTran;

                Command.Parameters.AddWithValue("@producto", producto);
                Command.Parameters.AddWithValue("@precio", precio);
                Command.Parameters.AddWithValue("@cantidad", cantidad);
                Command.Parameters.AddWithValue("@subtotal", subrtotal);
                Command.Parameters.AddWithValue("@venta", boleta);

                Command.ExecuteNonQuery();
            }
            catch (Exception)
            {

                throw;
            }
        }

        private void restarProducto(int producto, int cantidad, SqlConnection con)
        {
            try
            {
                SqlCommand Command = new SqlCommand("restarProductoVendido", con );
                Command.CommandType = CommandType.StoredProcedure;

                Command.Parameters.AddWithValue("@canitdad", cantidad);
                Command.Parameters.AddWithValue("@codigo", producto);

                Command.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
        }



        ////crear compra
        public int InsertCompra(DateTime Fecha, Decimal Neto, Decimal Iva, Decimal Total, Decimal XMLcreado, int Estado)
        {
            int error = 0;
            try
            {
                conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
                // llamando y ejecución de procedimiento..

                SqlCommand exec = new SqlCommand("InsertCompra", conn.con);
                exec.CommandType = CommandType.StoredProcedure;

                exec.Parameters.Add("@Fecha", SqlDbType.DateTime);
                exec.Parameters["@Fecha"].Value = Fecha;

                exec.Parameters.Add("@Neto", SqlDbType.Decimal);
                exec.Parameters["@Neto"].Value = Neto;

                exec.Parameters.Add("@Iva", SqlDbType.Decimal);
                exec.Parameters["@NombreBodega"].Value = Iva;

                exec.Parameters.Add("@Total", SqlDbType.Decimal);
                exec.Parameters["@Total"].Value = Total;

                exec.Parameters.Add("XMLcreado", SqlDbType.Decimal);
                exec.Parameters["@XMLcreado"].Value = XMLcreado;

                exec.Parameters.Add("@Estado", SqlDbType.NVarChar);
                exec.Parameters["@Estado"].Value = Estado;

                error = exec.ExecuteNonQuery();
                conn.con.Close();
            }
            catch (Exception ex)
            {
                return error;
            }
            finally
            {
                conn.con.Close();
            }

            return error;
        }// fin método


        ////busqueda folio
        public DataTable listadoCompra(string busquedaFolio)
        {

            conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
            DataTable dt = new DataTable();

            SqlDataAdapter da = new SqlDataAdapter("QueryCompra", conn.con);
            SqlParameter ParbusquedaFolio = new SqlParameter();
            da.SelectCommand.CommandType = CommandType.StoredProcedure;


            try
            {
                ParbusquedaFolio.ParameterName = "@Folio";
                ParbusquedaFolio.Value = busquedaFolio;

                da.SelectCommand.Parameters.Add(ParbusquedaFolio);
                da.Fill(dt);
            }
            catch (Exception e)
            {
            }
            return dt;
        }//fin metodo

        ////Consulta
        ////public DataTable cargarDGVBodega(string folio)
        ////{

        ////    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        ////    DataTable dt = new DataTable();

        ////    SqlDataAdapter da = new SqlDataAdapter("QueryCompra", conn.con);
        ////    SqlParameter ParNombreBodega = new SqlParameter();
        ////    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        ////    ParNombreBodega.ParameterName = "@Folio";
        ////    ParNombreBodega.Value = folio;

        ////    da.SelectCommand.Parameters.Add(ParNombreBodega);
        ////    da.Fill(dt);

        ////    return dt;
        ////}

        //public void cargarDataGridViewComboBoxColumn(DataGridViewComboBoxColumn cb, string procedimiento, string nombre, string valor)
        //{

        //    try
        //    {
        //        if (cb.Items.Count == 0)
        //        {
        //            DataSet ds = listadoDatosCombobox(procedimiento);
        //            //'Se declara y se asigna al dataset el resultado de la consulta efectuada
        //            cb.DataSource = ds.Tables[0];// 'Se asigna al combo el dataset resultado de la consulta
        //            cb.DisplayMember = nombre; //'Se asigna el nombre del Campo al combo
        //            cb.ValueMember = valor; //'Se asigna el valor del Campo al combo
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        cb.DataSource = null;
        //    }
        //}

        //public void cargarCombox(ComboBox cb, string procedimiento, string nombre, string valor)
        //{

        //    try
        //    {
        //        if (cb.Items.Count == 0)
        //        {
        //            DataSet ds = listadoDatosCombobox(procedimiento);
        //            //'Se declara y se asigna al dataset el resultado de la consulta efectuada
        //            cb.DataSource = ds.Tables[0];// 'Se asigna al combo el dataset resultado de la consulta
        //            cb.DisplayMember = nombre; //'Se asigna el nombre del Campo al combo
        //            cb.ValueMember = valor; //'Se asigna el valor del Campo al combo
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        cb.DataSource = null;
        //    }
        //}

        ////private DataSet listadoDatosCombobox(string NombreProcedimiento)
        ////{

        ////    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        ////    DataSet dt = new DataSet();

        ////    SqlDataAdapter da = new SqlDataAdapter(NombreProcedimiento, conn.con);
        ////    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        ////    da.Fill(dt);

        ////    return dt;
        ////}

        ///// <summary>
        ///// ejecuta una consulta, sin utilizar procedimiento  de almacenado 
        ///// </summary>
        ///// <param name="strCadena"></param>
        ///// <returns></returns>
        //public string TraerValor(string strCadena)
        //{
        //    DataSet ds = EjecutaConsultaDataset(strCadena);
        //    DataRow row;
        //    if (ds.Tables[0].Rows.Count > 0)
        //    {
        //        row = ds.Tables[0].Rows[0];
        //        return row[0].ToString();
        //    }
        //    else
        //        return "";
        //}


        ////ejecutar una consulta
        //private DataSet EjecutaConsultaDataset(string consulta)
        //{
        //    SqlDataAdapter daCommand;
        //    DataSet dsGral;
        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    try
        //    {

        //        daCommand = new SqlDataAdapter(consulta, conn.con);
        //        dsGral = new DataSet();
        //        daCommand.Fill(dsGral);

        //        return dsGral;
        //    }
        //    catch (SqlException error)
        //    {
        //        return null;
        //    }
        //    finally
        //    {
        //        dsGral = null;
        //    }
        //}



        ///// <summary>
        ///// ejemplo llenado generico de una datagridview
        ///// </summary>
        ///// <param name="Grilla"></param>
        ///// <param name="NombreProcedimiento"></param>
        ///// <returns></returns>
        //public bool LLenarDGV(ref  System.Windows.Forms.DataGridView Grilla, string NombreProcedimiento)
        //{
        //    try
        //    {
        //        Grilla.DataSource = listadoDatosDGV(NombreProcedimiento);
        //        Grilla.Refresh();
        //        return true;
        //    }
        //    catch (Exception e)
        //    {
        //        return false;
        //    }
        //}
        //private DataSet listadoDatosDGV(string NombreProcedimiento)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataSet dt = new DataSet();

        //    SqlDataAdapter da = new SqlDataAdapter(NombreProcedimiento, conn.con);
        //    SqlParameter ParNombreBodega = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;
        //    da.Fill(dt);

        //    return dt;
        //}
        ////Crear (con transaccion)
        //public int AddOrdenCompra(DateTime fecha, decimal Neto, decimal Iva, decimal Total, DataGridView dgvDetalle)
        //{
        //    int folioCompra = 0;
        //    if (conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass))
        //    {
        //        SqlCommand Command = new SqlCommand("InsertCompra", conn.con);
        //        Command.CommandType = CommandType.StoredProcedure;
        //        SqlTransaction sqlTran = conn.con.BeginTransaction();
        //        Command.Transaction = sqlTran;

        //        try
        //        {
        //            Command.Parameters.AddWithValue("@Fecha", fecha);
        //            Command.Parameters.AddWithValue("@Neto", Neto);
        //            Command.Parameters.AddWithValue("@Iva", Iva);
        //            Command.Parameters.AddWithValue("@Total", Total);
        //            Command.Parameters.AddWithValue("@XMLcreado", Total);

        //            var Rowscout = Command.ExecuteScalar();
        //            folioCompra = Convert.ToInt32(Rowscout);



        //            int Cantidad = 0;
        //            string CodigoProducto = "";
        //            int Precio = 0;
        //            int SubTotal = 0;

        //            for (int i = 0; i < dgvDetalle.RowCount - 1; i++)
        //            {

        //                CodigoProducto = dgvDetalle.Rows[i].Cells[0].Value.ToString();
        //                Cantidad = int.Parse(dgvDetalle.Rows[i].Cells[1].Value.ToString());
        //                Precio = int.Parse(dgvDetalle.Rows[i].Cells[2].Value.ToString());
        //                SubTotal = int.Parse(dgvDetalle.Rows[i].Cells[3].Value.ToString());

        //                AddDetalleCompra(folioCompra, CodigoProducto, Cantidad, Precio, SubTotal, ref sqlTran, conn.con);
        //            }
        //            sqlTran.Commit();
        //        }
        //        catch (Exception ex)
        //        {
        //            try { sqlTran.Rollback(); }
        //            catch (Exception exRollback) { }
        //            folioCompra = 0;

        //        }

        //    }
        //    return folioCompra;
        //}

        ////Editar
        //public int EditCompra(DateTime fecha, decimal Neto, decimal Iva, decimal Total, DataGridView dgvDetalle, int Folio)
        //{
        //    int filas = 0;
        //    if (conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass))
        //    {
        //        SqlCommand Command = new SqlCommand("EditarCompra", conn.con);
        //        Command.CommandType = CommandType.StoredProcedure;
        //        SqlTransaction sqlTran = conn.con.BeginTransaction();
        //        Command.Transaction = sqlTran;

        //        try
        //        {
        //            Command.Parameters.AddWithValue("@Fecha", fecha);
        //            Command.Parameters.AddWithValue("@Neto", Neto);
        //            Command.Parameters.AddWithValue("@Iva", Iva);
        //            Command.Parameters.AddWithValue("@Total", Total);
        //            Command.Parameters.AddWithValue("@XMLcreado", Total);
        //            Command.Parameters.AddWithValue("@Folio", Folio);
        //            filas = Command.ExecuteNonQuery();


        //            DeleteDetalleCompra(Folio, ref sqlTran, conn.con);


        //            int Cantidad = 0;
        //            string CodigoProducto = "";
        //            int Precio = 0;
        //            int SubTotal = 0;

        //            for (int i = 0; i < dgvDetalle.RowCount - 1; i++)
        //            {

        //                CodigoProducto = dgvDetalle.Rows[i].Cells[0].Value.ToString();
        //                Cantidad = int.Parse(dgvDetalle.Rows[i].Cells[1].Value.ToString());
        //                Precio = int.Parse(dgvDetalle.Rows[i].Cells[2].Value.ToString());
        //                SubTotal = int.Parse(dgvDetalle.Rows[i].Cells[3].Value.ToString());

        //                AddDetalleCompra(Folio, CodigoProducto, Cantidad, Precio, SubTotal, ref sqlTran, conn.con);
        //            }
        //            sqlTran.Commit();
        //        }
        //        catch (Exception ex)
        //        {
        //            try { sqlTran.Rollback(); }
        //            catch (Exception exRollback) { }
        //            filas = 0;

        //        }

        //    }
        //    return filas;
        //}//fin metodo

        ////Borrar
        //private void DeleteDetalleCompra(int Folio, ref SqlTransaction sqlTran, SqlConnection con)
        //{
        //    int ver = 0;
        //    SqlCommand Command = new SqlCommand("BorrarCompra", con);
        //    Command.CommandType = CommandType.StoredProcedure;
        //    Command.Transaction = sqlTran;

        //    Command.Parameters.AddWithValue("@Folio", Folio);

        //    ver = Command.ExecuteNonQuery();
        //}//fin metodo


        ////agregar detalle

        //private void AddDetalleCompra(int Folio, String CodigoProducto, int Cantidad, int Precio, int SubTotal, ref SqlTransaction sqlTran, SqlConnection con)
        //{


        //    SqlCommand Command = new SqlCommand("InsertDetalleCompra", con);
        //    Command.CommandType = CommandType.StoredProcedure;
        //    Command.Transaction = sqlTran;

        //    Command.Parameters.AddWithValue("@Folio", Folio);
        //    Command.Parameters.AddWithValue("@CodigoProducto", CodigoProducto);
        //    Command.Parameters.AddWithValue("@Cantidad", Cantidad);
        //    Command.Parameters.AddWithValue("@Precio", Precio);
        //    Command.Parameters.AddWithValue("@SubTotal", SubTotal);

        //    Command.ExecuteNonQuery();


        //}//fin método


        //public int EditarCompra(int Folio, DateTime Fecha, decimal Neto, decimal Iva, decimal Total, int XMLcreado)
        //{
        //    int error = 0;
        //    try
        //    {

        //        conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //        //llamado y ejecucion de procedimiento

        //        SqlCommand exec = new SqlCommand("AlterCompra", conn.con);
        //        exec.CommandType = CommandType.StoredProcedure;

        //        exec.Parameters.Add("@Folio", SqlDbType.NVarChar);
        //        exec.Parameters["@Folio"].Value = Folio;

        //        exec.Parameters.Add("@Neto", SqlDbType.NVarChar);
        //        exec.Parameters["@Neto"].Value = Neto;

        //        exec.Parameters.Add("@Iva", SqlDbType.NVarChar);
        //        exec.Parameters["@Iva"].Value = Iva;

        //        exec.Parameters.Add("@Total", SqlDbType.NVarChar);
        //        exec.Parameters["@Total"].Value = Total;

        //        exec.Parameters.Add("@XMLcreado", SqlDbType.NVarChar);
        //        exec.Parameters["@XMLcreado"].Value = XMLcreado;

        //        error = exec.ExecuteNonQuery();
        //        conn.con.Close();

        //    }
        //    catch (Exception ex)
        //    {
        //        return error;
        //    }
        //    finally
        //    {
        //        conn.con.Close();
        //    }
        //    return error;
        //}//fin metodo


        ////anular compra
        //public int AnularCompra(int Folio, DateTime Fecha, decimal Neto, decimal Iva, decimal Total, int XMLcreado, int Estado)
        //{
        //    int error = 0;
        //    try
        //    {

        //        conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //        //llamado y ejecucion de procedimiento

        //        SqlCommand exec = new SqlCommand("AlterCompra", conn.con);
        //        exec.CommandType = CommandType.StoredProcedure;

        //        exec.Parameters.Add("@Folio", SqlDbType.NVarChar);
        //        exec.Parameters["@Folio"].Value = Folio;

        //        exec.Parameters.Add("@Neto", SqlDbType.NVarChar);
        //        exec.Parameters["@Neto"].Value = Neto;

        //        exec.Parameters.Add("@Iva", SqlDbType.NVarChar);
        //        exec.Parameters["@Iva"].Value = Iva;

        //        exec.Parameters.Add("@Total", SqlDbType.NVarChar);
        //        exec.Parameters["@Total"].Value = Total;

        //        exec.Parameters.Add("@XMLcreado", SqlDbType.NVarChar);
        //        exec.Parameters["@XMLcreado"].Value = XMLcreado;

        //        exec.Parameters.Add("@Estado", SqlDbType.NVarChar);
        //        exec.Parameters["@Estado"].Value = Estado;

        //        error = exec.ExecuteNonQuery();
        //        conn.con.Close();

        //    }
        //    catch (Exception ex)
        //    {
        //        return error;
        //    }
        //    finally
        //    {
        //        conn.con.Close();
        //    }
        //    return error;
        //}//fin metodo


        ////private DataSet listadoDatosCombobox(string NombreProcedimiento)
        ////{

        ////    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        ////    DataSet dt = new DataSet();

        ////    SqlDataAdapter da = new SqlDataAdapter(NombreProcedimiento, conn.con);
        ////    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        ////    da.Fill(dt);

        ////    return dt;
        ////}



        //public void cargarCombobox(ComboBox cb, string procedimiento, string nombre, string valor)
        //{
        //    try
        //    {
        //        if (cb.Items.Count == 0)
        //        {
        //            DataSet ds = listadoDatosCombobox(procedimiento);
        //            // se declara y se asigna al dataset el resultado de la consulta enfocada
        //            cb.DataSource = ds.Tables[0];// se asigna al combo el dataset resultado de la consulta
        //            cb.DisplayMember = nombre;// se asigna el nombre del campo al combo
        //            cb.ValueMember = valor; // se asigna el valor del campo al combo
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        cb.DataSource = null;
        //    }
        //}

        //private DataSet listadoDatosCombobox(string NombreProcedimiento)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataSet dt = new DataSet();

        //    SqlDataAdapter da = new SqlDataAdapter(NombreProcedimiento, conn.con);
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        //    da.Fill(dt);

        //    return dt;
        //}


        //public DataTable cargarDGVCompra(string nombreCompra)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataTable dt = new DataTable();

        //    SqlDataAdapter da = new SqlDataAdapter("QueryCompra", conn.con);
        //    SqlParameter ParNombreCompra = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        //    ParNombreCompra.ParameterName = "@Folio";
        //    ParNombreCompra.Value = nombreCompra;

        //    da.SelectCommand.Parameters.Add(ParNombreCompra);
        //    da.Fill(dt);

        //    return dt;
        //}
        //// Cargar DGV Buscar Compra
        //public DataTable cargarDGVBuscarCompra(string nombreCompra)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataTable dt = new DataTable();

        //    SqlDataAdapter da = new SqlDataAdapter("QueryBuscarCompra", conn.con);
        //    SqlParameter ParNombreCompra = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        //    ParNombreCompra.ParameterName = "@Folio";
        //    ParNombreCompra.Value = nombreCompra;

        //    da.SelectCommand.Parameters.Add(ParNombreCompra);
        //    da.Fill(dt);

        //    return dt;
        //}

        ////Cargar DGV Buscar Detalle Compra
        //public DataTable cargarDGVBuscarDetalleCompra(int folio)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataTable dt = new DataTable();

        //    SqlDataAdapter da = new SqlDataAdapter("QueryBuscarDetalleCompra", conn.con);
        //    SqlParameter ParNombreCompra = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        //    ParNombreCompra.ParameterName = "@Folio";
        //    ParNombreCompra.Value = folio;

        //    da.SelectCommand.Parameters.Add(ParNombreCompra);
        //    da.Fill(dt);

        //    return dt;
        //}

        //// Cargar cmbx EstadoEnvio

        //public DataTable cargarDGVEstado(string Folio)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataTable dt = new DataTable();

        //    SqlDataAdapter da = new SqlDataAdapter("QueryEstadoEnvio", conn.con);
        //    SqlParameter ParEstadoEnvio = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;

        //    ParEstadoEnvio.ParameterName = "@Folio";
        //    ParEstadoEnvio.Value = Folio;

        //    da.SelectCommand.Parameters.Add(ParEstadoEnvio);
        //    da.Fill(dt);

        //    return dt;
        //}

        ////busqueda folio XML
        //public DataTable listadoFolioDTE(string busquedaFolio)
        //{

        //    conn.CrearConexion(General.Server, General.DataBase, General.User, General.Pass);
        //    DataTable dt = new DataTable();

        //    SqlDataAdapter da = new SqlDataAdapter("QueryEstadoEnvioFolio", conn.con);
        //    SqlParameter ParbusquedaFolio = new SqlParameter();
        //    da.SelectCommand.CommandType = CommandType.StoredProcedure;


        //    try
        //    {
        //        ParbusquedaFolio.ParameterName = "@Folio";
        //        ParbusquedaFolio.Value = busquedaFolio;

        //        da.SelectCommand.Parameters.Add(ParbusquedaFolio);
        //        da.Fill(dt);
        //    }
        //    catch (Exception e)
        //    {
        //    }
        //    return dt;
        //}//fin metodo

    }
}
